MMANA (Antenna analyzing tool by JE3HHT Makoto Mori)


First version released on 1999.01.10 JE3HHT Makoto Mori
Latest version released on  2000.07.07 JE3HHT Makoto Mori
English MMANA.EXE version 0.5 released on 2001.06.25 by DL2KQ (also EU1TT) Gontcharenko Gary
English manual version 0.5 released on 2001.06.25 by JA7UDE Nob Oba

----------------------
Preface 
----------------------

Comments from Mori-san, JE3HHT
MMANA is based on MININEC, which is a little bit old engine.  The main stream of antenna modeling nowadays is based on NEC4.  


Acknowledgements from Gary, DL2KQ-EU1TT
I would like to thank Alex , RZ1ZK, for providing me information about Japanese MMANA and help in the first steps of translations Japanese mmana.exe file. I also thank Serge UA6LGO for big help in translations Japanese words and expressions.

Acknowledgements from Oba, JA7UDE
I would like to thank Mr. Makoto Mori for ANOTHER great HAM software - MMANA.  I hope many HAMs in the world enjoy this great software.


----------------------
Introduction
----------------------

MMANA is an antenna-analyzing tool based on the moment method, which was introduced in MININEC version 3.  The BASIC source code of the computation engine is published as a PDS in MININEC.  I have ported it to C++ (Borland C++ Builder) and made the graphical user interface for the ease of use.

MMANA has the following functions:

- Table-based editor for the antenna design and definition
- Graphical antenna viewer (it shows the segmentation and current distribution, too)
- Viewer for the horizontal and vertical beam pattern
- Comparator for two or more computation results
- Antenna element editor
- Antenna wire editor
- Tools for defining the combination of pipes with different diameters
- Automatic antenna optimizer with respect to jX, SWR, Gain, F/B, Elevation, and Current (user customizable)
- Sheet browser of the optimized results with manual tuning capability
- Frequency characteristics chart maker
- Data file generator

MMANA uses the following files:
- Antenna definition file (text format)
- Computation result file (binary format)
- Optimization sheet (binary format)
- Current flow file (CSV text format)
- Near field data file (CSV text format)
- Far field data file (CSV text format)
- Frequency characteristics file (CSV text format)

MMANA has the limitations in the parameters as follows:
- Maximum number of pulses			8192 (default is 1280)
- Maximum number of wires			512
- Maximum number of sources			64
- Maximum number of loads			100

Please bear in mind that this document explains the usage of MMANA.  It is not a textbook of antenna modeling/analysis.  If you are familiar with the moment method, you can make full use of MMANA capabilities.  Good references are:

Hiroaki Kogure, "Antenna design using PC," CQ Publishing, April 15, 1998
"Theory and experience of antenna simulation," Ham Journal No. 95, CQ Publishing
 (Comment by JA7UDE: these two book are written in Japanese and available only in Japan)

During the MMANA development, I often referred to an article On an antenna analyzing software using the moment method in Ham Journal No. 95 written by JA1WXB Matsuda-san.  It was very helpful.  Thank you very much.
(Comment by JA7UDE: this article was written in Japanese)

Forgive me that I did not write this document in the Windows Help file format, because it would take substantial time for me to do so.

* Throughout this document, lambda means the wavelength.


----------------------
1. Uninstall MMANA
----------------------

MMANA does not add any entry in the Windows registry.  To uninstall MMANA, just delete the MMANA folder (directory) and all the files.


----------------------
2. Antenna definition - Geometry tab
----------------------

MMANA provides you with a couple of ways to define the antenna.  The straightest way is to input the antenna coordinates in the form of a table.  Click on the Geometry tab, and you see an editor in the table format like a shreadsheet.  With the table, you can define the antenna parameters including wire dimension, sources, and loads (LCR load/termination).

Place the cursor to the parameter box and input a numeric value using a keyboard.  Hit the return key to validate the selected value.  You can use a simple equation instead of a numeric value (refer to Append.Txt).  Right click of the mouse gets you a pop-up menu, with which you can do insert, delete, and other primary operations.

+++++ Wire definition +++++

Define the wires that compose the antenna.
X1	X-axis starting position of the wire (unit is meter or lambda)
Y1	Y-axis starting position of the wire (unit is meter or lambda)
Z1	Z-axis starting position of the wire (unit is meter or lambda)
X2	X-axis ending position of the wire (unit is meter or lambda)
Y2	Y-axis ending position of the wire (unit is meter or lambda)
Z2	Z-axis ending position of the wire (unit is meter or lambda)
R	Radius of the wire (unit is millimeter or lambda)
SEG	Segmentation method

Note that R is not the diameter but the radius.
Put a minus value to R for modeling the element that is composed of two or more pipes having different radiuses.  For details, refer to Append.Txt.

If you put 0 (zero) to R, the wire behaves as an insulated wire.  Using this trick, you can define a complex combination of wires.  Refer to Append.Txt for more information.

For a Yagi antenna, it is a usual way to place the boom in parallel to X-axis, the elements to Y-axis, and the height direction to Z-axis.  It is a good idea to place the source at Z = 0 or to place the center of the antenna at Z=0.  You can change the antenna height above the ground using the other parameter described later.  If your target is a vertical antenna, place the source at Z=0.  I recommend that you place the center of the antenna at X=0 and Y=0.

In order to connect two or more wires at one point, you must give them exactly same starting or ending position, that is, the wires must have the same X, Y, and Z values at the connecting point; otherwise they would be treated as separated wires, which are not what you expected.  For example, if you want to model a T-shape antenna having a vertical wire connected to the center of a horizontal wire, you must define three wires (not two wires), as shown below.

Wire 1                         Connecting point                     Wire 2
------------------------------------ --------------------------------------
                                           |
                                           |
                                           |   Wire 3
                                           |
                                           |


SEG specifies the method of segmentation.
	Positive value 			Manual regular segmentation
	0					Automatic regular segmentation
	Minus value or DM1&DM2 		Tapering

If you want to divide the wire into the segments that all have equal length, put a positive value.  Putting value 10, for example, makes the wire segmented into 10 pieces.

If you want to get the segmentation done automatically, put zero to SEG.  In this case, the length of each segment is nearly equal to 1/DM2 multiplied by the wavelength.

If you want to use tapering, put a minus value.

In summary:
-1:		The lengths of segments vary from (1/DM1 * lambda) to (1/DM2 * lambda).
-2:		Tapering is applied only to the starting point.
-3:		Tapering is applied only to the ending point.
Others:	The value is used as DM1.  If you put -200, for example, tapering is done from (1/200 * lambda) to (1/DM2 * lambda).
A,B:	If you put 600,60 for example, tapering is done from lambda/600 to lambda/60.

	DM1: the interval of tapering start (= lambda/DM1)
	DM2: the interval of tapering end (=lambda/DM2)
	SC: the easing parameter (multiplier), 1 < SC <= 3
	EC: the number of segments at tapering-end point 

SC can have a value between 1 and 3 (1 < SC <= 3).  SC specifies how fast the tapering changes.  Usually SC is set to 2.

Care should be taken if you use -2 or -3 for partial tapering, because the pulse may not be generated at the center of the wire.  This is only the case, however, in making up a wire with two or more pipes having different radiuses, and therefore you should not see any fatal problem.

EC is the number of segments (DM1 segments) at the terminals in tapering.  For example, when you put 2 to EC, MMANA preserves 2 segments with lambda/DM1 interval.  In most cases, EC is set to 1, but it should be set to different values in special cases.  An example is given in ...\ANT\MULTIBANDS\DBLDP.MAA.

It is well known that the number of segments and the way of segmentation strongly affect the computation accuracy.  In particular, the accuracy is improved by fine tapering only around the bending point of the wire of, for instance, a loop antenna.  This kind of technique improves the accuracy even with small number of segments.

When the Wave Length box is checked, MMANA uses the ratios to the wavelength for the wire dimension and radius (unit is lambda).  This is called the wavelength mode.  When the box is not checked, MMANA uses 'meter' as the unit for dimension and 'millimeter' as the unit for the radius.  However, MMANA uses 'meter' for the unit of program-internal representations.  Even you change the design frequency in the wavelength mode, the original dimensions are preserved.  If you want to change the design frequency by keeping the wavelength ratio unchanged, use the antenna size function of the Edit menu.

When the Keep connected box is checked, the wires connected to the target wire are also changed their dimension to remain them connected to the target wire.

You can easily extend an antenna to 'stack' by command Edit-Make Stack.  Follow the dialog box to make vertical/horizontal stack antennas.  Refer to Append.Txt for details.

It should be cumbersome to design Yagi or loop antennas by inputting all the positions of the elements in X-Y-Z dimension.  You can use the Edit element function in the Edit menu.  If you want to design a more complex antenna, you could use the edit wire function in the Edit menu.


+++++ Sources (Feeding point) +++++

Pulse		Pulse position
Phase		Phase of feeding
Voltage	Voltage of feeding

Use the following convention for defining pulse positions.

	W#C(#)	Offset from the center of the wire
	W#B(#)	Offset from the beginning position of the pulse assignment on the wire
	W#E(#)	Offset from the ending position of the pulse assignment on the wire

Example	W1C	Center of wire 1
		W3C1	One point ahead of the center of wire 3
		W2C-2	Two points behind of the center of wire 2
		W2B	The beginning position of wire 2
		W5E3	Three points behind of the ending position of wire 5

Usually, the Phase is set to 0 for the antenna with one source.  For the antenna that uses 135 degree phased driven (e.g., HB9CV), put 135 to the Phase value at the second source.

Voltage normally has the value of the inverse of the number of sources (1 / Feeding_point_#).  If you model an unbalanced driven antenna, put the ratios to the Voltage values.  The absolute quantity of Voltage has no special meaning, but it affects the amplitude of the current distribution view in the Geometry tab.

From the very microscopic view, the wire is assumed isolated with a narrow gap at the source, and the two wires are driven from the end.  For the modeling of two or more wires driven at one source, Special tips are given in Appendex.Txt.

+++++ Loads (lumped-constant)  +++++

	PULSE:		The position of the pulse
	Type:		LC, R+jX, or S

To define the pulse position, use the same convention as the source.

To select a loading type, hit the return key at the type box and get the pop-up menu.

When you choose LC, you must put L (uH), C (pF), and Q as the parameters.  When you use only L, put 0 to C.  When you use only C, put 0 to L.

L and C generate a parallel resonant trap.  MMANA automatically calculates and displays the resonance frequency given by the L and C.  Once you defined the trap, MMANA automatically changes L or C to keep the resonance frequency constant (resonance keeping function), when you change C or L.  Put 0 to L or C in order to stop the automatic resonance keeping function, and then put your values to L and C again.

Conversely, when you input the resonance frequency and either L or C, MMANA calculates the value of C or L.

You normally have to put the Q value to the L or C.  Put 0 to Q if L or C has no loss.

When you use R+jX type definition, input resistance R (Ohm) and reactance X (Ohm).  It is convenient for modeling a termination resistance or for putting some reactance regardless of the circuit type.

When you select S, you put the S parameter (A0 - An and B0 - Bn) of the load.  Class n is automatically given to the input point.  Use this S method for the complicated circuit consisting of serial-parallel resonance circuit that is not affected by the frequency.  For details, refer to Append.Txt.

Samples are given in the following models:

Loading coil			VDP40.MAA, VDP40B.MAA in directory ...\ANT\HF SHORT\
Loading capacitor		MAGLOOP.MAA, MAGLOOPC.MAAin directory ...\ANT\Magnetic loops\
Trap				MULTDPH.MAA, MULTDPL.MAA, MULTDPW.MAA, MULTDPHW.MAA in directory ...\ANT\HF Multibands\
Resistor termination		T2FD.MAA, RHOMBIC.MAA, BEVERAGE.MAA in directory ...\ANT\HF aperiodic\
S parameter			MCQM.MAA in directory ...\ANT\HF multibands\


+++++ Maximum number of pulses +++++

The maximum number of pulses is 1280 in default.  You can change it in the Option menu (maximum 8192).


----------------------
3.  Antenna view
----------------------

You can view the antenna silhouette by clicking on the view tab.  After the calculation, it also shows the current distribution superimposed on the wires.

The wire drawn in thick line is the wire where the cursor is placed in the wire definition table (Geometry page).  To select another wire, click the target wire with the left button of the mouse.  The clicked wire becomes thick and the cursor moves to the wire in the wire definition table.  This method is useful for modeling a complicated antenna.

In addition, the double click with the mouse gets you the pop-up menu of the polar axis editor, which is useful to change the length and angle of the wire.

The right click gets you another pop-up menu.  You can get the view centered at the clicking position, add/delete a source, move the wire, etc.

++ Full view button
	You can see the overall view of the antenna.

++ Center X=0 Y=0 Z=0 button
	It moves the reference point (X, Y, Z = 0) of the coordinate axes to the center of the window.

++ Horizontal rotate slide bar
	It rotates the X- and Y-axes around Z-axis.

++ Vertical rotate slide bar
	It moves the viewpoint vertically (effective only at the viewpoint display)

++ Zoom slide bar
	It changes the zoom value.

++ Norm view
	It displays the antenna in accordance with the viewpoint position.  You had better uncheck this box when you inspect the current distribution and segmentation at length.

++ Currents
	It superimposes the current distribution on the wires.  You must calculate the current at least once before you get the currents view.  Currents are colored in red and blue according to the wire vector.

++ Segments
	It displays the segmentation points.  It is useful to verify the tapering operation.

++ Current amplitude slide bar
	It changes the amplitude of the current.  I thought it could be done automatically, but I dare to get the user to specify the amplitude for the ease of comparison.

It is strongly recommended that you verify whether the wire definitions are correct or not by viewing the current distribution.  If the current distribution is different from what you expected, you ought to check the antenna definition again.  In addition, if the current distribution does not have smooth transverse, you may not model the antenna correctly.  Recheck the wire definition, wire connection, and segmentation.


----------------------
4. Compute
----------------------

Push the Compute tab to calculate the antenna model.  Just push the Start button at the bottom left corner of the window in order to start the operation.

You must always define the following parameters.

Frequency	Frequency for the calculation (the design frequency)
Ground		Ground condition
Height		Antenna height above the ground
Ground set	The ground type in case of the real ground condition
Wire		The wire material

MININEC3 algorithm takes account of the real ground only for the far field calculation, which is used to obtain the beam pattern.  It assumes the perfect conductive ground for the impedance calculation.  In case the antenna is hooked at low height compared with the wavelength, the computation result is inclined to give lower Z than actual.

Put the offset (unit is meter) to the Z-axis to the antenna height parameter.  MMANA uses this value for calculation with the ideal conductive ground or the real ground.

If MMANA cannot start the calculation for some reason, you would see a message in the right upper log window.  This mostly is due to something wrong in your antenna definition.  If you have a floating-point error, recheck your antenna definition.

The latest calculation result is shown at the top of the table.  This table only show the results; you cannot edit the numbers there.  The SWR is calculated in assumption of the 50-Ohm feed in default.  To change the feeding impedance in the option menu, click Options, Options and Setup, Setup.

Even if you define multiple sources, the result shows only the first source.  To consult the other sources, see the log window.  Click the log window.  MMANA shows a cursor.  Push the upper arrow key to scroll back.

For the F/B calculation, MMANA uses the values in the range, the right back to 120 degrees, and compares them with the worst one.  This range can be set in the option.  Ga stands for the absolute gain.  Gh is simply derived by substituting 2.15dB from Ga.  Gh is not displayed if you include the ground option.

MMANA does not thoroughly consider the effective digit numbers.  The impedance is shown with many digits, but it just is for preserving the effective digits.  This is important particularly for low impedance.  You should keep in mind that it would include practical inaccuracy.

Media is referred to in the calculation of the far electric field (beam pattern).  Set the dielectric constant and conductivity (mS/m) that reflect the ground condition.  For details, see Append.Txt.

If you want to simulate two or more grounds, you have to input the X-distance and height parameters as well.  MININEC has an option that takes account of the virtual ground screen; MMANA follows it.

To precisely calculate a magnetic loop antenna, the wire loss must be included as one of the parameters.  If you select a wire, MMANA assumes a single simple wire.  If you select a pipe, MMANA assumes that the skin depth of the pipe be 10%.  For example, a 10mm diameter pipe has 1mm skin depth.
The reference books of mine show that the permeability of the steel is 120 - 20000, which is vague indeed.  I dare to assume it 150.  The bigger the permeability, the larger the skin effect.
Generally, you should not have a problem in using no-loss material option for standard cupper or aluminum antennas.  It takes less time to calculate an antenna that is made of no loss material.

Tips:  in default, the maximum number of pulses is 1280.  Change this value in the option menu if you want to have more.


----------------------
Far field plot
----------------------

Far field plot page shows the beam pattern.  The left chart shows the horizontal pattern.  The right chart shows the vertical pattern.

The vertical pattern is obtained by slicing the horizontal pattern with the vertical plane that includes the X-axis.  The horizontal pattern is obtained at the horizontal plane that has the peak in elevation.  However, if the elevation angle is greater than 87 degrees, MMANA shows the horizontal pattern at 45 degrees in elevation.
To change the elevation, push the elevation button.  The F/B ratio and other results are recalculated.

The angle resolution in both horizontal and vertical patterns is 1 degree.  The elevation, on the other hand, has 0.1-degree resolution.  Special care should be taken for the very high antenna with respect to the wavelength.  That kind of antenna could have very sharp vertical beam pattern and MMANA may not correctly detect the peak.  This is likely to happen for 1.2 GHz or higher frequency antennas.

Fields pane allows you to select the horizontal or vertical polarization in electric field.  You can select the view from Horizontal Polarity, Vertical Polarity, Total (aggregation), and Superimposed (V+H).

To print the beam pattern, push the Print button and proceed with the dialog box.  Select the paper size if you need.  MMANA automatically resizes the printout in accordance with the paper size.
To save the pattern in the bitmap formant, push the Alt-PrintScreen button on the keyboard.  The selected window is graphically copied to the clipboard.  You can then use it in an image tool, such as Paint Brush.


----------------------
6. Element edit
----------------------

The element editor is activated by pushing the Edit element button in the edit menu.  It is very troublesome if you would design the elements of Yagi or loop antenna by inputting data of each element in the X-Y-Z coordinates.  Using the editor, you can straightforwardly define the antenna with intuitive parameters, such as width, length, perimeter, and element space.

To modify the shape (length, diameter, etc) of the element, right click the editor and follows the pop-up menu.

First, MMANA scans how the wires are connected together.  The wires that have the same XYZ value are supposed to be connected with each other.  Next, MMANA analyzes the element dimension by seeing the vector of each element.  At this step, MMANA takes different procedure in analyzing if one of the elements has two or more loops, such as hentenna and Twin-loop antenna.  This affects the course of optimization action (described in the later section).  It the optimization procedure works in a different way as you expected, change the order of element definition.  It is a good idea to use Edit by text function in the Edit menu.

It should be noted that the order of the elements could be changed if you delete or modify the element.  In that case, you must adjust the position of a source and/or that of a load.

To design the antenna from scratch, it is a good idea to start with defining the element length for the Yagi antenna, or with defining the perimeter for the loop antenna.  The default shape for the loop antenna is a vertical square.  If you want to change it, hit the return key at the shape box and choose your favorite from the pop-up menu.

From now on, you put the values like space, width, and perimeter.  To define a reflector, put the cursor at the reference point, right click, and choose "Add."

To add an element, MMANA copies the parameters of the front or back element.  This is useful for defining a complicated element (e.g., an element with a capacity hat).

When "Change only the end points" is selected, the element composed of two or more wires changes the positions of its ending points (default).  On the other hand, when "Change all coordinate proportionally" is selected, all the associated wires are changed in the same ratio for X-, Y-, and Z-axes.  For details, refer to Append.Txt.

The space is always defined with respect to the adjacent element.  In the case of 3-element tri-band quad, for example, the definition can be as follows:

No.	Space		Function of element	Note
1	0.0		14MHz reflector		Same position of No. 2
2	0.0		21MHz reflector		Same position of No. 3
3	2.5		28MHz reflector		2.5 meters behind from No. 4 

4	Reference point	14MHz radiator 
5	0.0		21MHz radiator		Same position of No. 4
6	0.0		28MHz radiator		Same position of No. 5

7	2.0		14MHz director		2 meters behind from No. 6 
8	0.0		21MHz director		Same position of No. 7 
9	0.0		28MHz director		Same position of No. 8

If you change the space between No. 3 and No. 4 elements, No. 1 and No. 2 elements move together with No. 3 element.  MMANA uses the element closest to the X-axis as the reference point.

The element having a branch toward X-axis (e.g., a capacity hat) is defined with respect to the center of the element.  For this reason, it is a good idea to extend the capacity hat symmetrically with respect to the element.

When "on- distance from the first element, off - space between wires" at the bottom of the window is checked, MMANA shows the element spaces.  When it is not checked, MMANA shows the distance to Element 1.

When "Lambda" is checked, the wires are displayed per wavelength.  When it is not checked, the wire length is displayed in meter (radius is in millimeter).

You can print the image by clicking with the right button of the mouse.  You can save the data in the CSV format by selecting "Save this table as file."  This is useful for data transfer to a spreadsheet program.


----------------------
7. Wire editor
----------------------

Select "Wire edit" in the Edit menu to start the wire editor.  You can add, modify, and delete the wire by the mouse operations.  The editor has four types of views.

- 3D tab		Three dimension view
- X-Y tab		Top view
- X-Z tab		Side view
- Y-Z tab		Front view

The sliders and buttons at the right of the window are:

- Zoom slide			Zoom-in/Zoom-out
- Arrow tool button		Select mode
- Line tool button		Add a new wire
- Square tool button		Add a new loop
- Plus tool button		Centered on X=0, Y=0, Z=0
- Whole view tool button	Zoom the view to show full antenna
- Display pull down list	All: all the wires
				Plane: the wires on the same plane
				Element: show only wires that are connected with the selected wire
- Grid				Hide/unhide the grid
- Grid size			Grid size

Right click on the window to call the pop-up menu that has the following functions:
- Centered on this position	Make the click position the center of the window.
- Centered in X=0, Y=0, Z=0	Make the reference point (X, Y, Z = 0) the center of the window.
- Centered on the antenna	Move the center of the antenna to the center of the window.
- Connect to the closest wire	Connect the selected wire to the closest other wire
- Disjoint wire at the connected point	Disjoint wire from other wires at the connected point
- Set center wire on center axis	Move the selected wire to the axis
- Divide wire into		Divide wire into the specified number of pieces
- Del wire			Delete the wire
- Grid start point		Align the grid to the specified point

The selected wire is display in red and the others are in black.  The end points are marked with X if connected.  They are marked with [] (square) if not connected.  You can define a complicated antenna, such as an LPDA, by making full use of these functions, that is, Divide wire, Disjoint wire, Connect wire to the closest wire, etc.


++ Mouse operation in the wire selection mode.

Click on the arrow button at the top right corner to start the wire selection mode.  Click the target wire to select.

Note that you can do the following operations in the 2-D view window only.  In the 3-D view, you only can move the end of the wire and connect it to the other wire's.

Bring the mouse pointer close to the end of a wire.  The cursor changes its shape to the cross hair type.  Click and drag the end point to move it.  With the shift key pressed, MMANA moves the wire with keeping vertical or horizontal.  With they Ctrl key pressed, MMANA keeps the wire length and change only the angle.

Get the mouse pointer close to the center of a wire.  The cursor changes it shape to [] (square) + pointer.  You can grab the wire and move to the arbitrary position.  With the shift key depressed, MMANA attempts to keep the wire horizontal or vertical.

++ Line definition mode

Click the line button at the top right corner to start the line definition mode, in which you can add a new wire.  Click and drag to place a new wire.  You can directly input the parameter values by clicking the right hand side menu in the window.
Note that in the 3-D view window, you only can add a new wire that is connected to the other existing wire.

++ Loop definition mode

Click the square button at the top right corner of the window to star the loop definition mode.   Click and drag to place a new square loop.
Note that this mode is not available in the 3-D view window.



----------------------
8. Optimization
----------------------

During the analysis of beam antennas, I guess everybody would play with maximizing the gain or F/B ratio of the antenna by manually modifying the element length and space.  A loading coil, except the bottom loading one, is hard to minimize its jX by varying the L value 'try and error.'
I did those kinds of stuffs while I was making this software, and got dog-tired.  I have decided to add a facility that automatically optimizes the antenna giving consideration to various parameters.

Select the Optimization in the view menu or push the optimize button in the calculation window to open the optimization window.

The goals of the optimization are:
- Minimize the jX (get the antenna resonant)
- Minimize the SWR
- Maximize the gain
- Maximize the F/B ration
- Minimize the elevation of the beam
- Matching circuit
- Maximize or minimize the current

In most cases, these parameters are in the 'trade-off' condition.  You can select the parameters that you focus on using the slide bars in the top of the window.  As you slide the bar to right, the selected target is prioritized.  As you slide the bar to the left end, the target is ignored.  

If you check the no goal box, MMANA simply sweeps the parameters regardless of the state of the slide bars.  MMANA increments the parameter from the current value to the Max value.  This is useful to observe the antenna behavior from the viewpoint of the height or frequency.

Push the advanced button to set the target at length.  Assume that you are happy if the antenna has 20 dB F/B ratio.   Put 20 in the F/B ratio box.  MMANA attempts to optimize the other parameters if the antenna already has 20 or more F/B ratio. 

Push the band button to get the dialog box, with which you can specify the band frequency and the source.  This is useful for optimizing a multi-band antenna.  In default, MMANA tries only one band and source as specified.

Matching circuit is one of the hairpin match, capacitance match, and any Z.  The hairpin match has minus jX (capacitive) and the capacitance match has plus jX (inductive).

Current optimization attempts to maximize or minimize the specified pulse point.

The antenna parameters that MMANA changes during the optimization procedure are:
- Wire coordinate and radius
- Wire length, azimuth, and zenith (in polar coordinates)
- Element width, perimeter, and radius
- Parameters of lumped-constant load
- Antenna height
- Frequency
- Voltage and phase of the source
- Stack space

You can set the parameters above as up to 128 variables.  Hit return key or click on the type field to display the type selection pop-up menu.  Hit return key on the what field to pop the menu up.  Input a value manually to other fields.

++ Wire coordinate and radius

These are most basic variables.  You can change the X1, X2, Y1, Z1, Y2, Z2, and R of the wire.
If the specified wire changes its coordinates, the connected wires also changes together to keep them connected.
This method should be useful for the fine-tuning.  Unit is always meter.  Pos. is the element number.

++ Wire length, azimuth, and zenith (in polar coordinates)

You can change the wire length and angle with respect to the reference point in the polar coordinates.  This is useful for optimizing the length or the angle of the inverted V and V beam.  It should be noted that you must not set the element position or space as the variable if you change the X-axis.  MMANA does not prevent it but may not update the optimized results.
When the coordinate of the wire is changed, the connected wire moves together with it.  Pos. is the wire number.  The step unit is meter or degree.


++ Element

The parameters that define the element can be set as the variable in the optimization.  For a yagi antenna, for example, they are the element space, position, and width.  For a loop antenna, they are space, positio, perimeter, etc.
Pos. is the element number.  Unit is always meter.

* In MMANA version 1.53 or later, you can specify not only the space but also the position.  If you want to fix the boom length and optimize the element spacing, use the positions of inner elements as the parameters.
* In MMANA version 1.75 or later, you can specify the width (all), length (all), and loop (all) to the element that is composed of two or more wires.  The wires are changed in a proportional manner.


++ Lumped-constant load

LC or R+jX can be set as the variable.  If you want to change two loads in both ends of the element (e.g., loading DP or trapped yagi), you can use 'association function.'
If both L and C are specified in the definition, MMANA treats them as a trap and keeps the resonance frequency unchanged.  For example, if L is increased, MMANA automatically decreases C.
Pos. is the number of lumped-constant loads.  Unit of L is uH.  Unit if C is pF.  Unit of R is Ohm. 


++ Antenna height

Unit of the variable is meter.


++ Frequency

Unit is MHz.  If your target antenna is a multi-bander, do not use the frequency as the variable.


++ Source

MMANA changes the phase and voltage of the sources.  Pos. is the number of source.  Unit of the phase is degree.  Unit of the voltage is V.


++ Stack space

Unit is meter.  If you set 'space' in the what box, the vertical and horizontal spaces are changed at the same time.


++ Association

If you put 0 to the association box, the parameter changes freely as an independent variable.  If you put a plus number, it is assumed to have the same variable that the number points to.  If you put a minus number, it is assumed to have the same variable negated that the number points to.  You can put a simple equation, too.  The operators supported here are +, -, *, and /.  It works like a primary spreadsheet.

[Examples of association]
	0		Not associated (independent variable)
	1		Associated with variable 1 (the same value of variable_1 is put there)
	-5		Associated with negated variable 5 (- variable_5)
	1*1.05		Associated with variable_1*1.05 (variable_1 * 1.05)
	2-1.5		Associated with variable2_-1.5 (variable_2 - 1.5)
	-3+1.2		Associated with 1.2 - variable_3

If you optimize the positions of the traps of a multi-band dipole, you should want to move two traps proportionally to the center of the antenna.  You define two variables, Y1 and Y2, which specify the trap positions.  The center of the dipole must be Y = 0.  Define Y1 as an independent variable (association of Y1 = 0), and Y2 as Y1's negated value (association of Y2 = -1).
You can make use of the automatic association by right click at the variable box.  MMANA makes a guess what should be the target of the association.
This method can be used to move the center wire of hentenna or tri-hat antenna.

Pitch specifies the minimum step of variable change in either an absolute value or a percentage.  Large pitch makes the convergence fast but will not reach the best result.

Min and Max defines the range of the variable.  The variable does not become smaller than Min or larger than Max.  You could specify other variable with # followed by the variable number.  If you put #1 in the Max box for example, the Max value is set the value of variable 1.

If you do not put Max value to the element space of Yagi antenna, MMANA might give you much larger space than you expected.  If you do not put Min to the width or perimeter, MMANA might shrink one of five elements of Yagi antenna and configure a four-element Yagi antenna as a result.  It is a good idea to see how the antenna dimension is being changed in the antenna view window during the optimization.

Push the delete button to delete the variable where the cursor resides.

Push the all element button to make MMANA add all the parameters to the optimization variable list.  If the space check box is checked, the element space is used.  If not, the absolute position of the element is used.  Refer to Appendex.Txt for details.

Push the Element reference button to start an element selection view.  Move the cursor to the variable that you want to vary in the optimization procedure, and push the OK button.  MMANA registers the variable for the optimization.  The variable marked with * is already registered.  If you want to do this with the 3-D view, select the wire selection tab.  Click the wire you want to add as a variable.  Push the OK button.  The wire already registered as a variable is shown in red.

Absolute pitch: if checked, put an absolute value to the pitch.  If not checked, put a percentage value.

Resolution 2 degrees: MMANA calculates the beam pattern every 2 degrees.  It shortens the calculation time, but degrades the accuracy particularly for the high-frequency antenna with a ground.

Display log: the intermediate states of the optimization procedure are displayed in the log window.

Push the start button to start the optimization.  Even during the optimization, you can see the wire definition, the antenna view, or the far field pattern in real time.  Note that the MMANA is dedicated to the optimization; the response of the mouse should be very slow.

Needless to say, MMANA works on the Windows operating system, so you can do another job even during the optimization.  You could execute two MMANA at the same time.  You can run the optimization in one window and design an antenna in the other window.  Append.Txt has a section, "Tips on optimization."  Please refer to it, too.




----------------------
9. Optimization log
----------------------

The optimization routine would not always judge the result, which one thinks the best, is the best.  This might be due to the fact that the rate of evaluation is different from that the designer expects.

You can read the optimization log by pushing the optimization log button at the bottom of the Optimization window.  It shows up to 128 latest steps of the optimization.  You can select one of the steps and get it back to the optimization window so that you can manually pick out the optimization result you think best.


----------------------
10. Frequency characteristics
----------------------

Push the Plot button at the bottom of the optimization window to calculate the frequency characteristics of the antenna.  Make sure that you have calculated the antenna model at least once before you use this function.

Speculate button: MMANA calculates the antenna model with a little frequency offset and speculates the frequency characteristics around the center frequency.  MMANA uses a linear approximation for R, Ga, and F/B.  MMANA assumes that the antenna is a serial resonance circuit and speculates the jX and SWR.  MMANA cannot speculate the far field pattern, Hi.

All points button: MMANA calculates the antenna model at all five points and plots the graph.

Detail button: MMANA calculates the antenna model at intermediate frequencies as well as the grid points.  This is useful for obtaining the antenna characteristics in the wide frequency range.  The number of intermediate points can be set in the property window.

Resonance button:  MMANA first calculates the resonance frequency of the antenna and shows the Fo in the Z graph.  Care should be taken that it takes substantial time for the calculation if you put the frequency that is very far from the resonance frequency.

Property window (Set button):  You can calculate the antenna model having a matching circuit.  MMANA assumes that the matching section is composed of no-loss lumped-constant LC circuit.  If you turn it on, MMANA always supposes a perfect matching circuit is attached.

The values shown at the upper left corner of the Z graph are:

L - Effective inductance (obtained from the jX transition)
C - Effective capacitance (obtained from the jX transition)
Q - Q of the resonance circuit ( Q = sqrt(L/C)/R )
B - Width of half-value ( B = fo/Q )
fo - Resonance frequency (obtained from L and C)

It should be noted that these values are calculated from the jX transition on the assumption that the antenna is a serial resonance circuit.  Therefore, the values would not be valid for some kinds of antennas.  In addition, the error of them is not small if the frequency for the calculation is far from the resonance frequency.

Q and B represent the bandwidth of the resonance circuit.  Large B (small Q) implies wide bandwidth.  However, if the antenna has a lumped-constant load with some loss, it seemingly has large R and eventually large B.  The efficiency of the antenna must be low; no premature joy!  Care should be taken if you use a voltage-feeding scheme, which requires a parallel resonance model.  You cannot use a serial resonance model for it.

The beam pattern chart in the far field page superimposes all the results.  If you want to focus on one of the results, click on the frequency you want to see, or click on "ON" field.  The results marked with 'On' are displayed.

Push the print button to invoke a print dialog box.  Z, SWR, and Ga/FB charts are printed in a sheet.  The far filed pattern is not printed.



------------------------
11. Tips on edit menu
------------------------

++ Search and replace
Search and replace the wire dimension, radius, and SEG.  The search always is done over the wire.  This is useful for replace something all.
When "Also relace mirrow's coordinates" is checked, plus and minus values are compared in their absolute value.  For example, replacing 3 with 4 also replaces -3 with -4.

++ Replace start and end points
Exchange the X- and Y-axis values, the Y- and Z-axis values, or the Y- and Z-axis values.  This is useful for checking the antenna placing vertically and horizontally.

++ Wire scale
Enlarge or reduce the size of the antenna.  This is useful for porting a design to the other band and the fine tuning.  If you also change the wire radius, the antennas are compatible for any frequencies (except for the antenna with a lumped-constant load).

A normal approach to optimize the antenna that is a little off the target frequency is to minimize jX, but it takes substantial time.  In addition, it is not guaranteed that you have the satisfying result.
In this case, first get the resonance frequency (fo) by pushing the resonance button.  Next, put the frequency in the design frequency in the wire edit window.  Next, open this antenna size menu, set the target frequency, and resize the antenna.  This procedure is simple yet effective.  It also is applicable to the situation in which the antenna has the frequency deviated much from the target frequency.  It is a good idea to enlarge the chart width (frequency) when you seek for the resonance frequency.

++ Round value
Round off all the parameters including wire coordinates, radius, and lumped-constant load.  After you have done the resize or optimization of the antenna, you will have many fractions.  Use this function to get them to the practical precision.

++ Wire definition
MMANA uses the orthogonal X-Y-Z coordinates to define and calculate antennas.  However, it occasionally is easy for the designer to use the polar coordinates (i.e., length, azimuth, and zenith) for the wire definition.
This menu provides the editor in the polar coordinates.

++ Move
You can move the selected wire to any direction in parallel with X-, Y-, or Z-axis.  This is useful for moving the feeding wire of hentenna.

++ Antenna definition edit
A simple text editor for the antenna design.  Right click brings up a pop-up menu for cut&paste.  You can use Windows' standard shortcut keys, such as Ctrl-C, Ctrl-X, and Ctrl-V.

++ Taper wire set
This menu facilitates the definition of the wire that is composed of two or more sub-wires having different radiuses.  Refer to Append.Txt for details.


----------------------
12. Option
----------------------

Click on the option menu to open the dialog box, where you can specify MMANA environment options including resonance, coil, matching circuit, and stub.

++ Resonance
You can calculate L and C from the frequency and reactance, and vice versa.

++ Coil
You can calculate the diameter and the number of turns of the air coil from L, and vice versa.  This could be useful for making an air coil by yourself.  Bear in mind, however, that this calculation is not so accurate, and therefore please put up with some level of error.

++ LC match
The simplest LC matching circuit.  It should be useful for the design of matching circuit for a whip or vertical antenna.  Significantly small value of the reactance is supposed to be equivalent with the short state.  Significantly large value of the reactance is supposed to be equivalent with the open (isolated) state.
You can conjecture the LC combination for the automatic tuner (ATU) using this tool.
It should be noted that the loss R is not taken into consideration.  Generally speaking, the lager the L or C, the larger the loss.  In addition to that, L should have much larger loss than C.  As a result, it is a good idea to keep the L value as small as possible.

++ Line match 1
This tool is used for the calculation of impedance, Q-match section, and serial matching section using a distributed-constant circuit (e.g., a ladder feeder and a coaxial cable).  I used to use the Smith chart for this purpose, but I often do not recall how to use it.  I eventually come to rely on the PC, Hi.
The impedance calculation is done by obtaining the impedance of the output end of the feeder with respect to the impedance of the input end.  To make use of this process, the antenna impedance can be measured by using a coaxial cable in arbitrary length and a noise bridge.  SWR becomes smaller if the transmission line has a loss, which you can find in a handbook.

The Q-match section uses a cable and the series match section uses two cables connected in series.  Push the TUNE button to calculate the section length that gives the minimum SWR with respect to the input end (Ri).  For the Q-match section, put the same value to the Ri and feeder impedance.  MMANA assumes a no loss line.  The impedances at the center and input end of the line are displayed in the impedance boxes at the top of the window.

The line length (L) is noted in the electric length.  You have to consider the velocity factor of the feeder for the physical length.

++ Line match 2
Stub match, that is, trap match is calculated.  ZL is the load (antenna) impedance, Zo is the feeder impedancd of L1 and L2, and Zi is the feeder impedance.  SWR is calculated on a basis of the feeder impedance.  The velocity factor and the frequency affect the lengths of L1 and L2.
Push TUNE button to calculate the L1 and L2 that give the minimum SWR.  MMANA offers two solutions at maximum, but it sometimes cannot find one.

L1	Distance from the load to the stub
ZS	Impedance at the stub (in case of no stub)
XS	Stub reactance
L2s	Stub length (short stub)
L2o	Stub length (open stub)
Zi	Impedance at the source (SWR impedance)

The short stub is frequently used, but the open stub is used in case it is shorter.

You could use a lumped-constant load in the stub.  Insert XS as an inductance (coil) or a capacitance (capacitor).

++ Stub
X, L, and C of the ladder or coaxial feeder used for the stub.
I read many references to look for the velocity factor and impedance of the cables, but I could not find consistent values.  I have put the values that I think are typical.  You could use the user defined values if you need.  For reference, the X of open and short stubs are calculated by:

Short stub	X = Zo * tan( 2 * pai * l / lambda )
Open stub	X = -Zo * cot( 2 * pai * l / lambda )

It is said that the home made ladder feeder has the following impedance.  The velocity factor would be 0.96 to 0.99.


  Zo = 276 * log10(2D/d)   D: Line space,  d: Wire diameter


++ Setup

[Rear range of the F/B ratio]
This specifies the range of rear angle used for the F/B ratio calculation.
When you want to see the lobe in plus minus 60 degrees from the right behind, put 120.  You can put any value between 0 and 359, and there fore you could take the side lobes into consideration of the F/B ratio by putting, say 270.
From a vertical viewpoint, MMANA searches the lobes on the place that includes the peak point of the front beam.  If you put a value other than zero, MMANA searches the lobes from zero degrees to the specified angle at the right behind.  You can put any value between 0 and 179, so you could see the high-angle front lobes as the F/B ratio.

[Standard Z for SWR calculation]
The impedance for the SWR calculation.  The default is 50 Ohm.
MMANA version 1.58 or later accepts jX as the Z.  Using this, you can see the SWR with a matching circuit.  In this case, however, the matching circuit has a very broad characteristic in terms of frequency, and therefore the SWR is different from the actual value.  You may not worry about the lag because each amateur band is narrow.
Push the hairpin match button and input the target Z value to calculate jX of the hairpin match.  If you want to use a capacitive match, input a plus jX.  In either case, the target Z must be greater than the reference R.

[Current display - Specify direction]
Display the current direction in the antenna view window.  It will not always give the correct direction.  It depends on the antenna configuration.

[Last files (menu)]
The number of file names shown in the File drop down menu.  When the MMANA only box is uncheck, *.mab and *.mao files are also displayed.

[Maximum pulse number]
Maximum pulse number that MMANA can use.  The default value is 1280.  You can increase it up to 8192, but be careful that you may encounter a memory error in the PC with the small amount of memory including a virtual memory.  If you do not have enough physical memory, you may cause frequency swapping and make your PC very slow.
For reference, here are the sizes of the memory that stores the impedance matrix.

Pulse number		Memory size
1024			8MB
2048			32MB
4096			128MB
8192			512MB

I think that the standard PC would be able to handle up to 1000 pulses in a reasonable computation time (comment by JA7UDE: this is not true in 2001 hi hi).  It is useless if you preserve many pulses.  Keep the number as small as possible.



----------------------
13. MMANA files
----------------------

++ Antenna definition file
A text file recording the wire definition, sources, lumped-constant loads, etc.  This file can be viewed and edited with an external editor.  The parameter formats are self-explanatory.

++ Result file
A binary file recording the calculation results.  This file is in the binary format and therefore you cannot edit it.  It is necessary for the result comparison.  The file involves the antenna definition, too.

++ Optimization sheet
A binary file recording the optimization results.  This file is in the binary format and therefore you cannot edit it.  It records the optimization history, with which you can retrieve the previous optimization results.

++ Current file
A text file recording the currents and phases according to the pulse number and coordinates.  This file is in the CSV format, so that you can read it with a spreadsheet program, such as Microsoft Excel.  Each row consists of the following parameters.

Wire number, Pulse number, X, Y, X, Current (real), Current (imaginary), Current (absolute), phase

Units are:
X, Y, Z 		meter
Current 		Ampere
Phase			degree

++ Near field data file
A text file (CSV format) recording the electromagnetic force in the near field.  Each row has the following parameters:

X, Y, Z, Vector, Electric force (real), Electric force (imaginary), Electric force (absolute), phase
Units are:
X, Y, Z		meter
Electric force	V/m
Magnetic force	AT/m
Phase			degree

MMANA version 1.77 and later records them in the effective values.  The previous versions recorded them in the peak values. MNI TNX to JH1DGF)

++ Far field data file
A text file (CSV format) recording the absolute gain with respect to the azimuth and zenith.  Each row consists of the following parameters:

Zenith, Azimuth, Vertical polarization, Horizontal polarization, V+H

Units of them are:
Azimuth, Zenith	degree
Gain			dBi

++ Frequency characteristics data file
A text file (CSV format) recording the R, jX, SWR, Ga, and F/B.

Support:

All questions or concerns not related to the MMANA program should be directed to the MM-HAMSOFT YAHOO GROUP - http://groups.yahoo.com/group/MM-HAMSOFT

To subscribe to MM-HAMSOFT Users Group - http://groups.yahoo.com/group/MM-HAMSOFT/join

----------------------
Closing words
----------------------
I live in an apartment house.  I hook a small magnetic loop antenna and a vertical antenna made of a fishing rod.  In such a situation, I cannot live without a lumped-constant load, such as a loading coil.  I made this antenna analyzing tool, named MMANA, for this purpose.
I feel, however, that an antenna simulation using MININEC would have a limitation for the practical use, even though it can model the building structure as a virtual ground.
In the real situation, the lumped-constant load has a volume, which cannot exactly be analyzed.
Yet, I think an antenna simulator could be useful for designing a new antenna from scratch, because it gives us rough estimations of the antenna size and the lumped-constant loads.  My interest in the antenna modeling is based on such a situation, which biases the functions of this software tool.  I would be happy if MMANA is of help for making your antenna.

I enjoy Amateur Ham radio just as a hobby.  I am not an expert of antenna and still have much stuff I am not familiar with.  I would appreciate your comments, suggestions, and corrections.  Please do not ask me special technical questions, Hi.

----------------------
Distribution of MMANA
----------------------
MMANA is freeware.  Makoto Mori JE3HHT has the copyright of MMANA, but I do not restrict the copy and distribution.  I trust your good sense.  You do not have to notify me if you want to copy or distribute it.  MMANA was released with no support or no warranty of any damage caused by the use of MMANA. 

73 de JE3HHT Makoto Mori
